#if !defined(__APP_BLUETOOTH_H__)
#define __APP_BLUETOOTH_H__

#include "app_device.h"

typedef enum
{
    BT_BAUD_9600 = '4',
    BT_BAUD_115200 = '8',
} BT_BAUD;

/**
 * @brief 查看蓝牙是否存在
 *
 * @return int 0 存在 -1 不存在
 */
int app_bluetooth_status(Device *device);

/**
 * @brief 蓝牙重启指令
 *
 * @return int 0 成功 -1 失败
 */
int app_bluetooth_reset(Device *device);

/**
 * @brief 蓝牙该名字
 *
 * @return int 0 成功 -1 失败
 */
int app_bluetooth_rename(Device *device, char *name);

/**
 * @brief 设置波特率
 *
 * @param baud
 * @return int
 */
int app_bluetooth_setBaudRate(Device *device, BT_BAUD baud);

/**
 * @brief 设置MADDR
 *
 * @param maddr
 * @return int
 */
int app_bluetooth_setMAddr(Device *device, char *maddr);

/**
 * @brief 设置网络ID
 *
 * @param netid
 * @return int
 */
int app_bluetooth_setNetID(Device *device, char *netid);

/**
 * @brief 在读取完蓝牙数据后，对数据进行后处理，将其修改为我们需要的格式
 *
 * @param device 设备
 * @param data 原属数据缓存指针
 * @param len 原始数据长度
 * @return int 修改完的数据长度，如果长度为0，则表示数据无效
 */
int app_bluetooth_postRead(Device *device, void *data, int len);

/**
 * @brief 在发送之前，对数据作格式修改
 *
 * @param device 设备
 * @param data 要修改的数据
 * @param len 修改前的数据长度
 * @return int 修改后的数据长度，如果长度为0，则表示数据无效
 */
int app_bluetooth_preWrite(Device *device, void *data, int len);

#endif // __APP_BLUETOOTH_H__